package com.yiyuan.app.service;

import com.guaike.core.entity.result.Result;
import com.yiyuan.app.entity.param.BaseIdDTO;
import com.yiyuan.app.entity.param.BattleDTO;
import com.yiyuan.app.entity.result.*;

import java.util.List;

public interface TaskService {
    /**
     * 每日任务列表
     * @return
     */
    Result<List<TaskDailyVO>> dailyList();

    /**
     * 松树日记类型列表
     * @return
     */
    Result<List<TaskActionVO>> taskActionList();

    /**
     * 松树日记列表
     * @param action
     * @return
     */
    Result<List<TaskVO>> taskList(Integer action);

    /**
     * 我的vip进度
     * @return
     */
    Result<VipLevelVO> vipProgress();

    /**
     * 挑战榜列表
     * @param roomType
     * @return
     */
    Result<List<ChallengeRankVO>> challengeRankList(Integer roomType);

    /**
     * 领取每日任务
     * @param param
     * @return
     */
    Result<Boolean> getDailyTask(BaseIdDTO param);

    /**
     * 领取松树日记任务
     * @param param
     * @return
     */
    Result<Boolean> getTask(BaseIdDTO param);

    /**
     * 发起挑战
     * @param param
     * @return
     */
    Result<Boolean> initiateBattle(BattleDTO param);

    /**
     * 领取挑战奖励
     * @param param
     * @return
     */
    Result<Boolean> getBattlePrize(BattleDTO param);
}
